The invention relates to a communication system including a plurality of controller stations and at least one controlled station; the stations being interconnected via a communication network; functionality of each controlled station being associated with a respective abstract representation, referred to as AR, which provides an interface for software elements in the system to control functionality of the controlled station by means of messages exchanged with the AR via the communication network.
The invention further relates to a controller station for use in a communication system including a plurality of controller stations and at least one controlled station; the stations being interconnected via a communication network; functionality of each controlled station being associated with a respective abstract representation, referred to as AR, which provides an interface for software elements in the system to control functionality of the controlled station by means of messages exchanged with the AR via the communication network.
The invention relates in particular to a multimedia consumer electronics system. The consumer electronics industry is moving from mainly analogue operated devices to digitally operated devices. Audio has become digital with the arrival of digital storage media, such as compact disks, and digital broadcasting techniques, such as DAB. Also video is rapidly becoming digital. An all-digital multimedia system with digital audio and digital video opens up new possibilities to the consumer, owing to impressive digital processing and storage capabilities that are becoming available at affordable prices. Moreover, digital communication networks are becoming more powerful at reduced cost.
EP 0,406,486 describes the D2B communication system for consumer electronic devices enabling automatic control of an electronic device via the D2B bus. In this system, a station may act as a controller station, controlling one or more of the other stations, acting as controlled station(s). A controlled station makes its local functionality available in the form of a set of functions, which can be accessed by transferring messages via the D2B bus. The set of functionality can be seen as an abstract representation of the actual underlying functionality, which is provided by the hardware, and/or software of the controlled station. The representation is abstract in the sense that no strict one-to-one relationship between the externally offered functions and the internal implementation is required. Typically, the representation is standardized whereas the actual implementation is vendor or even model specific. Consequently, the controlled station maps the abstract representation (AR) into internal control mechanisms and controls the underlying hardware/software accordingly (e.g. using an internal bus, such as I2C, to control hardware components). Such a mapping and control is usually performed in software. This also covers the functionality required to map the abstract representation to the concrete representation of the underlying hardware/software of the station.
The AR can be controlled using a messaging mechanism. Command messages are defined for each function instructing the controlled station to perform a defined task. Request messages allow information to be retrieved from the controlled station with respect to the execution of a function, such as the state of the station. Event messages enable the controlled station to inform the controlling station of events, such as state changes, which have occurred in the controlled station.
In the controlling station, the task of controlling functionality of another station is assigned to the so-called Audio/Video Controller (AV/C). The AV/C acts independently of any of the other controlling stations. Typically, the AV/C starts a control sequence, usually referred to as feature or application, in reaction to a trigger from a user (e.g. a user has pressed a button on a remote control) or an event which has occurred in the system. A typical example of an application executed by the AV/C is the automatic play feature. For this feature, in response to the user activating the playback function of a VCR (e.g. pressing a play button or inserting a tape), the AV/C instructs the VCR deck to play the tape, instructs the VCR to make the A/V signal originating from the tape available to the TV, and instructs the TV to provide the signal from the VCR to the monitor. It will be appreciated that for this example the controlling AV/C is preferably, although not strictly required, located in either the TV or VCR to reduce the number of command messages. Several AV/Cs may be present in the stations. A station may over time or even simultaneously act as a controlling station or as a controlled station.
In the D2B System, a correspondence was required between on the one hand the feature executed by an AV/C and on the other hand the functions in the controlled station(s). This correspondence has hindered introduction of the system. Typically, a user already possessed an A/V system and replaced or added devices on an individual basis. Obtaining one device which was able to act as a D2B controlling station and/or controlled station did not add functionality to the system, since no partner station was available yet. Only once the user has obtained suitable partner station(s) automatic control functionality provided by the D2B system became available. Moreover, the functionality of the controlling station and the controlled station was static. As an example, the functionality made available by a VCR to the rest of the system was mainly decided by features of existing AV/Cs or AV/Cs under development at the moment of development of the VCR. If at a later moment an AV/C with a new feature was introduced requiring other functions of the VCR, this new AV/C could not co-operate with the existing D2B VCR, even if the hardware of the existing VCR in principle could provide the functionality. Consequently, changing or extending the functionality of the system was cumbersome.
It is an object of the invention to provide a communication system of the kind set forth which is more flexible with respect to the functionality of a controlled station. It is a further object of the invention that functionality of the controlled station can be managed in a user-friendly manner.
To meet the object of the invention, the communication system includes leader selection means for selecting a single one of the controller stations as a leading controller station; and each controller station includes AR distribution means for determining which controller station should execute the AR(s) of the respective controlled station(s); the AR distribution means being operative to, if located in a leading controller station, assign each AR at most to one of the controller stations; and control means for executing at least one AR assigned to the local controller station.
According to the invention, the abstract representation of a controlled station can be executed on a different station, referred to as the controller station. The communication between the AR in the controller station and the actual hardware/software in the controlled station may be performed in any way. This may include any non-standard, proprietary mechanism. In this way a controlled station which itself is not able to provide the desired AR to enable other stations to control it can still be part of the system, albeit controlled indirectly via the controller station. Whereas in the D2B systems only two parties where involved in communication (namely the feature/application in an AV/C of the controller station and the functionality in the controlled station), here three parties are involved: a feature/application (referred to as software element), an AR in a controller station and the controlled station. The feature/application may be located in any of the stations which are capable of issuing control messages to the AR in the controller station. The feature/application may also be located in the controller station itself.
A further advantage of the new architecture is that the functionality provided through the AR of a controlled station can be adjusted or upgraded. As an example, if initially a user had purchased a VCR with a basic AR and a TV with a corresponding basic feature using the basic VCR functionality, according to the invention the user can replace the TV with a new model offering an enhanced feature (although not required) and an enhanced AR of the VCR, where the VCR AR in the TV communicates to the VCR in a proprietary manner (at least for the added functionality). Now not only the new feature in the TV can use the enhanced VCR functionality, but a feature located anywhere in the system can use the enhanced functionality by accessing the VCR AR located in the TV.
To manage allocating ARs to controller stations, according to the invention, a two step approach is used. Firstly, one of the controller stations is elected as the leading controller station. Secondly, the leading controller station assigns the ARs to controller stations in such a way that an AR is at most once assigned. In this way it is avoided that two or more ARs are responsible for access to the same controlled station, which could lead to conflicts. By ensuring that for each controlled station at most one AR is active, conflicts in controlling the controlled station are avoided. Since in principle many stations may be able to act as a controller station, complex synchronization and management issues are avoided by assigning one of the controller stations as leading and as such responsible for assigning ARs to controller stations.
In an embodiment as defined in the dependent claim 2, the leader selection is performed in a simple, distributed manner by each controller station individually deciding whether or not it is the initial leader. The decision is based on unique identifiers of each of the controller stations. Preferably for the unique identifiers the same identifiers are used as used for identifying a station with respect to the network, such as a network address. The identifiers may be stored centrally, e.g. in one of the controller stations, or in a distributed manner, like each controller station storing its own identifier. Using the unique identifiers, each station can simply determine whether it is the leader or not. The decision may, for instance, be based on determining the highest or lowest identifier. Also, other algorithms may be used (e.g. transforming the identifier in a smaller number using a hash function and deciding on this number).
In an embodiment as defined in the dependent claim 3, the lowest order bits of the identifier are given much weight in determining the leader. In this way the situation is avoided that in all or many systems a station of a same vendor acts as the leading station. This situation could occur if a direct decision mechanism were used comparing the values of the identifiers, since typically the higher order bits of an identifier are vendor specific. Since the lower order bits are usually determined sequentially and independently by each manufacturer, this results in a simple way of achieving some randomness in choosing the leader. In this way, in different systems having stations of same manufacturers (e.g. a TV of brand X and a VCR of brand Y) there is a reasonable chance that not in all systems a station of one of the manufacturers will be elected as leader. Advantageously, for one fixed system always the same leader is selected. This may increase consistency in allocating ARs to controller stations, particularly if based on preferences or other information for a controlled station a choice has to be made between equally suitable controller stations. This also increases the consistency in the operation of the system.
In an embodiment as defined in the dependent claim 4, each controller station is associated with a capability indicator, indicating a suitability of the associated controller station to act as the leading controller station (i.e. to manage the assigning of ARs). By using capability indicators, the efficient but rather indiscriminate first selection of a leader is refined in a simple manner. Instead of all controller station(s) having to collect and decide upon the capabilities of all controller stations, this operation is only performed by one station (the initial leader), followed by handing over the responsibility to another controller station if this one turns out to be most capable in deciding where the ARs should be executed. By using only one station (the initial leader) to select the final leader also conflicts which could arise if the capability indicators indicate equally capable stations can be solved simply. For instance, the initial leader chooses one of the most capable stations, e.g. one with a lowest or highest identifier, one which reported its capability indicator first, or in any other suitable way. It is avoided that another station, based on the same data, chooses another station as the most capable one.
In an embodiment as defined in the dependent claim 5, controller stations, which are capable of retrieving updated software for the ARs, are given preference. The software may, for instance, be retrieved from the Internet, from a re-programmable storage, such as a harddisk, in the system, or by inserting an updated storage medium, such as a CD-ROM, in a storage reader. In this way the functionality of the system can be changed or, preferably, enhanced during the lifetime of the products.
To meet the object of the invention, the communication system includes leader selection means for determining whether the controller station is a leading controller station; and the controller station includes: AR distribution means for determining which controller station should execute the AR(s) of the respective controlled station(s); the AR distribution means being operative to, if the controller station has been selected as the leading controller station, assign each AR at most to one of the controller stations in the system; and control means for executing at least one AR assigned to the controller station.